home *** CD-ROM | disk | FTP | other *** search
Wrap
500 'PRISM.BAS Vers 1.1. This program is the property of J.A. McKee, 1300 W 510 'Rahn Road, Dayton, Ohio 45459, 513-434-3893. Permission to copy is granted 520 'providing this notice is retained and no costs except media are charged. 530 'This program is used to initialize the IDS Prism color printer. Speed is 535 'increased 10-fold by compiling. Requires > 64 kb. Not maintained. 540 'Initialization parameters include: 550 '-Select/Deselect 560 '-Mode: Normal, Expanded, Graphics 570 '-Ribbon Type: Black, Primary, Process 580 '-Justify on/off 590 '-Font selection, including international fonts 600 '-Style: Correspondence/Draft 610 '-Spacing: Fixed/Proportional 620 '-Left/Right Margins 630 '-Characters/inch 640 '-Horizontal and vertical tabs. Spaced equally or unequally 650 '-Form length. Print length 660 '-Lines/inch 670 '-Superscript/subscript advance 680 'with two displays. 690 'Parameter files can be saved and reused in subsequent runs. 700 'The Prism initialization file can be written directly to the printer or 710 'saved for later use (use COPY to initialize printer with a saved disk file) 2000 ' 2010 DIM E%(20),F%(20),O%(20),O1%(20),O(20) 2020 GOSUB 16400:GOSUB 15800 2030 COLOR C0%,B0%,B0% 2040 KEY OFF 6000 ' 6010 GOSUB 15200:COLOR C2%,B2%:LOCATE 1,26:PRINT " PRISM PRINTER INITIALIZATION ":COLOR C0%,B0% 6020 LOCATE 2,3:PRINT "This program provides initialization for a Prism printer."; 6030 LOCATE 3,6:PRINT "- The Prism Parameter File (default extension .DAT) contains values shown"; 6040 LOCATE 4,6:PRINT " in the Prism Parameter Menu. An old file can be used to initialize this"; 6050 LOCATE 5,6:PRINT " menu (Option A) or a new file of current menu values can be saved for"; 6060 LOCATE 6,6:PRINT " later use (Option B)."; 6070 LOCATE 7,6:PRINT "- The Prism Initialization File (default extension .PRS) uses values in"; 6080 LOCATE 8,6:PRINT " the current Prism Parameter Menu to initialize the printer (Option C)."; 6090 LOCATE 9,6:PRINT " This file can be saved to initialize the printer without running this"; 6100 LOCATE 10,6:PRINT " program (Option D). To initialize the printer without running this"; 6110 LOCATE 11,6:PRINT " program, use the saved file with COPY filnam LPTn:"; 6120 LOCATE 12,6:PRINT "- The default printer device is LPT1."; 6130 O8$="A Read old Parameter File C Write Init File to Printer E Modify Init values" 6140 O9$="B Write new Parameter File D Write Init File to Disk X EXIT this program " 6150 O7$="Select option:":GOSUB 30000: 6180 IF O$<"A" OR O$>"E" AND O$<>"X" THEN GOSUB 30200:GOTO 6180 6190 IF O$="X" THEN CLOSE:END 6210 IF O$="E" THEN GOSUB 20000:GOTO 6000 6220 O9$="":LOCATE 14,2:PRINT SPACE$(78);:LOCATE 15,2:PRINT SPACE$(78); 6230 G%=ASC(O$):ON G%-64 GOSUB 6800,6400,7200,7400 6240 GOSUB 30220:GOTO 6130 6250 STOP 6400 ' 6410 O1$=DEV2$:O2$=FILNAM2$:O3$=EXT2$:O8$="Write new Parameter File":O7$="Enter output file name ["+O1$+":"+O2$+"."+O3$+"]:":GOSUB 30000 6420 O1$=DEV2$:GOSUB 32000:FILE2$=O$ 6430 ON ERROR GOTO 6640 6440 OPEN FILE2$ AS #U2% LEN=16 6450 FIELD #U2%,16 AS U116$:FIELD #U2%,8 AS U18$,8 AS U28$:FIELD #U2%,4 AS U14$,4 AS U24$,4 AS U34$,4 AS U44$ 6460 FIELD #U2%,2 AS U12$,2 AS U22$,2 AS U32$,2 AS U42$,2 AS U52$,2 AS U62$,2 AS U72$,2 AS U82$:FIELD #U2%,1 AS U11$,1 AS U21$,1 AS U31$,1 AS U41$ 6470 O1%=VAL(B$):O2%=VAL(C$):O3%=VAL(D$):O4%=VAL(JL$):O5%=VAL(JR$):O6%=VAL(L1$):O7%=VAL(L2$):O8%=VAL(P$):O9%=VAL(R$) 6480 LSET U12$=MKI$(O1%):LSET U22$=MKI$(O2%):LSET U32$=MKI$(O3%):LSET U42$=MKI$(O4%):LSET U52$=MKI$(O5%):LSET U62$=MKI$(O6%):LSET U72$=MKI$(O7%):LSET U82$=MKI$(O8%):PUT #U2%,1 6490 LSET U12$=MKI$(O9%):LSET U22$=MKI$(LR%):LSET U24$=LSEL$:LSET U34$=MKS$(LCPI):LSET U44$=MKS$(E1):PUT #U2%,2 6500 LSET U14$=LJUST$:LSET U24$=MKS$(LB):LSET U34$=MKS$(LC):LSET U44$=MKS$(LD):PUT #U2%,3 6510 LSET U14$=LE$:LSET U24$=LF$:LSET U34$=MKS$(LJL):LSET U44$=MKS$(LJR):PUT #U2%,4 6520 LSET U11$=SEL$:LSET U21$=MODE$:LSET U31$=CPI$:LSET U41$=SP$:LSET U24$=MKS$(LL1):LSET U34$=MKS$(LL2):LSET U44$=MKS$(LP):PUT #U2%,5 6530 LSET U11$=JUST$:LSET U21$=Q$:LSET U31$=Q2$:LSET U28$=LMODE$:PUT #U2%,6 6540 LSET U18$=LE1$:LSET U28$=LF1$:PUT #U2%,7 6550 LSET U18$=LQ$:LSET U28$=LQ1$:PUT #U2%,8 6560 LSET U116$=LSP$:PUT #U2%,9 6570 LSET U116$=LR$:PUT #U2%,10 6580 LSET U12$=MKI$(E%(0)):LSET U22$=MKI$(E%(1)):LSET U32$=MKI$(E%(2)):LSET U42$=MKI$(E%(3)):LSET U52$=MKI$(E%(4)):LSET U62$=MKI$(E%(5)):LSET U72$=MKI$(E%(6)):LSET U82$=MKI$(E%(7)):PUT #U2%,11 6590 LSET U12$=MKI$(F%(0)):LSET U22$=MKI$(F%(1)):LSET U32$=MKI$(F%(2)):LSET U42$=MKI$(F%(3)):LSET U52$=MKI$(F%(4)):LSET U62$=MKI$(F%(5)):LSET U72$=MKI$(F%(6)):LSET U82$=MKI$(F%(7)):PUT #U2%,12 6600 LSET U12$=MKI$(F%(8)):LSET U22$=MKI$(F%(9)):LSET U32$=MKI$(F%(10)):LSET U42$=MKI$(F%(11)):LSET U52$=MKI$(F%(12)):LSET U62$=MKI$(F%(13)):LSET U72$=MKI$(F%(14)):LSET U82$=MKI$(F%(15)):PUT #U2%,13 6610 LSET U12$=MKI$(F%(16)):LSET U22$=MKI$(F%(17)):LSET U32$=MKI$(F%(18)):LSET U42$=MKI$(F%(19)):LSET U52$=MKI$(F%(20)):LSET U44$=MKS$(F1):PUT #U2%,14 6620 ON ERROR GOTO 0 6630 CLOSE #U2%:RETURN 6640 O6$="Output device full or illegal file name or device." 6650 GOSUB 30200:RESUME 6620 6800 ' 6810 O1$=DEV2$:O2$=FILNAM2$:O3$=EXT2$:O8$="Read old Parameter File":O7$="Enter input file name ["+O1$+":"+O2$+"."+O3$+"]:":GOSUB 30000 6820 O1$=DEV2$:GOSUB 32000:FILE2$=O$ 6830 ON ERROR GOTO 7070 6840 OPEN FILE2$ FOR INPUT AS #U2%:CLOSE #U2% 6850 OPEN FILE2$ AS #U2% LEN=16 6860 FIELD #U2%,16 AS U116$:FIELD #U2%,8 AS U18$,8 AS U28$:FIELD #U2%,4 AS U14$,4 AS U24$,4 AS U34$,4 AS U44$ 6870 FIELD #U2%,2 AS U12$,2 AS U22$,2 AS U32$,2 AS U42$,2 AS U52$,2 AS U62$,2 AS U72$,2 AS U82$:FIELD #U2%,1 AS U11$,1 AS U21$,1 AS U31$,1 AS U41$ 6880 GET #U2%,1:O1%=CVI(U12$):O2%=CVI(U22$):O3%=CVI(U32$):O4%=CVI(U42$):O5%=CVI(U52$):O6%=CVI(U62$):O7%=CVI(U72$):O8%=CVI(U82$) 6890 B$=MID$(STR$(O1%),2,LEN(STR$(O1%))):C$=MID$(STR$(O2%),2,LEN(STR$(O2%))):JL$=MID$(STR$(O4%),2,LEN(STR$(O4%))):D$=STR$(O3%):IF O3%>=0 THEN D$=MID$(D$,2,LEN(D$)) 6900 JR$=MID$(STR$(O5%),2,LEN(STR$(O5%))):L1$=MID$(STR$(O6%),2,LEN(STR$(O6%))):L2$=MID$(STR$(O7%),2,LEN(STR$(O7%))):P$=MID$(STR$(O8%),2,LEN(STR$(O8%))) 6910 GET #U2%,2:O9%=CVI(U12$):LR%=CVI(U22$):LSEL$=MID$(U24$,1,3):LCPI=CVS(U34$):R$=MID$(STR$(O9%),2,LEN(STR$(O9%))):E1=CVS(U44$) 6920 GET #U2%,3:LJUST$=MID$(U14$,1,3):LB=CVS(U24$):LC=CVS(U34$):LD=CVS(U44$) 6930 GET #U2%,4:LE$=MID$(U14$,1,3):LF$=MID$(U24$,1,3):LJL=CVS(U34$):LJR=CVS(U44$) 6940 GET #U2%,5:SEL$=U11$:MODE$=U21$:CPI$=U31$:SP$=U41$:LL1=CVS(U24$):LL2=CVS(U34$):LP=CVS(U44$) 6950 GET #U2%,6:JUST$=U11$:Q$=U21$:Q2$=U31$:LMODE$=U28$ 6960 GET #U2%,7:LE1$=MID$(U18$,1,6):LF1$=MID$(U28$,1,6) 6970 GET #U2%,8:LQ$=MID$(U18$,1,7):LQ1$=MID$(U28$,1,7) 6980 GET #U2%,9:LSP$=MID$(U116$,1,12) 6990 GET #U2%,10:LR$=MID$(U116$,1,14) 7000 GET #U2%,11:E%(0)=CVI(U12$):E%(1)=CVI(U22$):E%(2)=CVI(U32$):E%(3)=CVI(U42$):E%(4)=CVI(U52$):E%(5)=CVI(U62$):E%(6)=CVI(U72$):E%(7)=CVI(U82$) 7010 GET #U2%,12:F%(0)=CVI(U12$):F%(1)=CVI(U22$):F%(2)=CVI(U32$):F%(3)=CVI(U42$):F%(4)=CVI(U52$):F%(5)=CVI(U62$):F%(6)=CVI(U72$):F%(7)=CVI(U82$) 7020 GET #U2%,13:F%(8)=CVI(U12$):F%(9)=CVI(U22$):F%(10)=CVI(U32$):F%(11)=CVI(U42$):F%(12)=CVI(U52$):F%(13)=CVI(U62$):F%(14)=CVI(U72$):F%(15)=CVI(U82$) 7030 GET #U2%,14:F%(16)=CVI(U12$):F%(17)=CVI(U22$):F%(18)=CVI(U32$):F%(19)=CVI(U42$):F%(20)=CVI(U52$):F1=CVS(U44$) 7040 GOSUB 25600:GOSUB 25800 7050 ON ERROR GOTO 0 7060 CLOSE #U2%:RETURN 7070 O6$="Input File not found or illegal filename or device. Strike ENTER to continue" 7080 GOSUB 30200:RESUME 7050 7200 ' 7210 O1$=DEV0$:O8$="Write Initialization File to Printer":O7$="Enter printer device name ["+O1$+":] :":GOSUB 30000 7220 IF LEN(O$)>0 AND LEN(O$)<4 THEN GOSUB 30200:GOTO 7220 7230 IF LEN(O$)=0 THEN O$=DEV0$ 7240 O1$=O$:O%=INSTR(O1$,":"):IF O%<>0 THEN O1$=MID$(O1$,1,4) 7250 O1$=O1$+":" 7260 ON ERROR GOTO 7310 7270 OPEN O1$ AS #U1%:WIDTH #U1%,255 7280 GOSUB 11000 7290 ON ERROR GOTO 0 7300 CLOSE #U1%:RETURN 7310 O6$="Printer fault or illegal device. Strike ENTER to continue." 7320 GOSUB 30200:RESUME 7290 7400 ' 7410 O1$=DEV2$:O2$=FILNAM1$:O3$=EXT1$:O8$="Write Initialization File to disk":O7$="Enter output Initialization File name ["+O1$+":"+O2$+"."+O3$+"]:":GOSUB 30000 7420 O1$=DEV1$:GOSUB 32000:FILE2$=O$ 7430 ON ERROR GOTO 7480 7440 OPEN FILE2$ FOR OUTPUT AS #U1% 7450 GOSUB 11000 7460 ON ERROR GOTO 0 7470 CLOSE #U1%:RETURN 7480 GOSUB 30200:RESUME 7460 11000 ' 11010 ON ERROR GOTO 11160 11020 PRINT #U1%,SEL$;MODE$;CPI$;SP$;JUST$; 11030 PRINT #U1%,ESC$;X$;"J";X$;JL$;X$;JR$;X$;Z$; 11040 PRINT #U1%,ESC$;X$;"L";X$;L1$;X$;L2$;X$;Z$; 11050 PRINT #U1%,ESC$;X$;"B";X$;B$;X$;Z$; 11060 PRINT #U1%,ESC$;X$;"C";X$;C$;X$;Z$; 11070 PRINT #U1%,ESC$;X$;"D";X$;D$;X$;Z$; 11080 PRINT #U1%,ESC$;X$;"E";X$;E$;X$;Z$; 11090 PRINT #U1%,ESC$;X$;"F";X$;F$;X$;Z$; 11100 PRINT #U1%,ESC$;X$;"P";X$;P$;X$;Z$; 11110 PRINT #U1%,ESC$;X$;"Q";X$;Q$;X$;Z$; 11130 PRINT #U1%,ESC$;X$;"R";X$;R$;X$;Z$; 11140 ON ERROR GOTO 0 11150 RETURN 11160 O6$="Printer or device fault. Strike ENTER to exit" 11170 GOSUB 30200:RESUME 11140 15000 ' 15010 GOSUB 15200 15020 COLOR C0%,B0%:LOCATE 2,2:PRINT L1A$;:LOCATE 3,2:PRINT L2A$;:LOCATE 4,2:PRINT L3$;:LOCATE 5,2:PRINT L4$;:LOCATE 6,2:PRINT L5$; 15030 LOCATE 7,2:PRINT L6$;:LOCATE 8,2:PRINT L7$;:LOCATE 9,2:PRINT L8$;:LOCATE 10,2:PRINT L9$;:LOCATE 11,2:PRINT L10$;:LOCATE 12,2:PRINT L11$; 15040 COLOR C3%,B3%:GOSUB 15410:GOSUB 15550:GOSUB 15630:GOSUB 15420:GOSUB 15560:GOSUB 15640:GOSUB 15430:GOSUB 15570:GOSUB 15650 15050 GOSUB 15440:GOSUB 15580:GOSUB 15660:GOSUB 15450:GOSUB 15590:GOSUB 15670:GOSUB 15460:GOSUB 15600:GOSUB 15680 15060 GOSUB 15470:GOSUB 15610:GOSUB 15690:GOSUB 15480:GOSUB 15490:GOSUB 15510 15070 COLOR C11%,B11%:GOSUB 15700:RETURN 15200 ' 15210 COLOR C10%,B10%:CLS:LOCATE 1,1:PRINT CHR$(218)+STRING$(78,196)+CHR$(191) 15220 FOR O%=2 TO 15:LOCATE O%,1:PRINT CHR$(179):LOCATE O%,80:PRINT CHR$(179):NEXT O% 15230 LOCATE 13,1:PRINT CHR$(195)+STRING$(78,196)+CHR$(180) 15240 LOCATE 16,1:PRINT CHR$(192)+STRING$(78,196)+CHR$(217):RETURN 15400 ' 15410 LOCATE 2,11:PRINT LSEL$;:RETURN 15420 LOCATE 3,9:PRINT LMODE$;:RETURN 15430 LOCATE 4,11:PRINT LQ1$;:RETURN 15440 LOCATE 5,10:PRINT LQ$;:RETURN 15450 LOCATE 6,12:PRINT LJUST$;:RETURN 15460 LOCATE 7,13:PRINT USING "##";LR%;:RETURN 15470 LOCATE 8,10:PRINT LR$;:RETURN 15480 LOCATE 9,12:PRINT LSP$;:RETURN 15490 FOR O%=0 TO 7:O(O%)=E%(O%)/48:NEXT O% 15500 LOCATE 10,19:PRINT USING L13$;O(0),O(1),O(2),O(3),O(4),O(5),O(6),O(7):RETURN 15510 FOR O%=0 TO 20:O%(O%)=CINT(LCPI*((F%(O%)-VAL(JL$))/120)):IF O%(O%)<0 THEN O%(O%)=0 15520 NEXT O% 15530 LOCATE 11,19:PRINT USING L14$;O%(0),O%(1),O%(2),O%(3),O%(4),O%(5),O%(6),O%(7),O%(8),O%(9),O%(10) 15540 LOCATE 12,19:PRINT USING L14$;O%(11),O%(12),O%(13),O%(14),O%(15),O%(16),O%(17),O%(18),O%(19),O%(20):RETURN 15550 LOCATE 2,39:PRINT USING L12$;LJL;:RETURN 15560 LOCATE 3,40:PRINT USING L12$;LJR;:RETURN 15570 LOCATE 4,37:PRINT USING L12$;LCPI;:RETURN 15580 RETURN 15590 LOCATE 6,44:PRINT USING "###";LP%;:RETURN 15600 LOCATE 7,36:PRINT LF$;:RETURN 15610 LOCATE 8,38:PRINT LF1$;:RETURN 15630 LOCATE 2,67:PRINT USING L12$;LL1;:RETURN 15640 LOCATE 3,68:PRINT USING L12$;LL2;:RETURN 15650 LOCATE 4,66:PRINT USING L12$;LB;:RETURN 15660 LOCATE 5,67:PRINT USING L12$;LD;:RETURN 15670 LOCATE 6,65:PRINT USING L12$;LC;:RETURN 15680 LOCATE 7,64:PRINT LE$;:RETURN 15690 LOCATE 8,66:PRINT LE1$;:RETURN 15700 LOCATE 9,53:PRINT "X EXIT to main menu";:RETURN 15800 ' 15810 SEL$=CHR$(17):LSEL$="On" 15820 MODE$=CHR$(2):LMODE$="Normal" 15830 CPI$=CHR$(30):LCPI=12 15840 SP$=CHR$(6):LSP$="Fixed" 15850 JUST$=CHR$(5):LJUST$="Off" 15860 B$="8":LB=6 15870 O$=STR$(CINT(VAL(B$)/2)) 15880 C$=MID$(O$,2,LEN(O$)):LC=.5 15890 D$="-"+C$:LD=.5 15910 E1=0:LE1$="N/A " 15920 E$="0":LE$="Off": 15940 F1=8:LF1$="Even" 15950 F$="0":LF$="On" 15960 JL$="120":LJL=1 15970 JR$="920":LJR=7.67 15980 LJR1=80 15990 L1$="528":LL1=11 16000 L2$="504":LL2=10.5 16010 P$="0":LP%=0 16020 Q$="4":LQ$="Black":LQ1$="Process" 16030 Q2$="0" 16040 R$="1":LR$="Correspondence":LR%=1 16050 GOSUB 25400:GOSUB 25600 16060 L1A$="A Select= I Left Margin= inches Q Form Length= inches" 16070 L2A$="B Mode= J Right Margin= inches R Print Length= inches" 16080 L3$="C Ribbon= K Char/inch= chars S Lines/inch= lines" 16090 L4$="D Color= L (Reserved) T Superscript= lines" 16100 L5$="E Justify= M Inter-Ch Spacing= U Subscript= lines" 16110 L6$="F Font No.= N Hor Tabs= V Ver Tabs=" 16120 L7$="G Style= O HT Spacing= W VT Spacing=" 16130 L8$="H Spacing= P Toggle Dual Displays" 16140 L9$="Ver Tb in inches: (Up to 8)" 16150 L10$="Hor Tb in chars:" 16160 L11$=" (Up to 21)" 16170 L12$="##.##" 16180 L13$="##.##;##.##;##.##;##.##;##.##;##.##;##.##;##.##" 16190 L14$="####;####;####;####;####;####;####;####;####;####;####;####;" 16200 RETURN 16400 ' 16410 T%=0:DEF SEG=0:IF (PEEK(&H410) AND &H30)<>&H30 THEN T%=1 16420 DEF SEG:DEV0$="L